﻿/**
 * 表格。
 */
Ext.define('Happy.grid.Panel', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.happy-grid',
    mixins: {
        'list': 'Happy.table.mixin.List',
        'sceneable': 'Happy.mixin.Sceneable'
    },
    requires: ['Happy.grid.plugin.Paging'],

    /**
     * @cfg 重写 ExtJs。
     */
    selType: 'checkboxmodel',

    /**
     * @cfg 重写 ExtJs。
     */
    selType: 'checkboxmodel',

    constructor: function (config) {
        var me = this;

        if (config && config.scene) {
            me.initScene(config.scene);
            delete config.scene;
        }

        me.callParent(arguments);
    },

    /**
     * 重写 ExtJs。
     * 
     * @protected
     */
    initComponent: function () {
        var me = this;

        me.mixins.list.configDefaultPlugins.apply(me, arguments);
        me.configDefaultPlugins();

        me.configComponent();

        me.callParent(arguments);
    },

    /**
     * 配置默认插件。
     *
     * protect
     */
    configDefaultPlugins: function () {
        var me = this;

        me.plugins = me.plugins || [];

        me.plugins.push(
            'happy-grid-paging'
        );
    },

    /**
     * @inheritdoc
     */
    createRecord: function (record) {
        var me = this;

        // TODO:JS 默认值应该可以配置。
        return me.getStore().getProxy().getModel().create({});
    },

    /**
     * @inheritdoc
     */
    insertRecord: function (record) {
        var me = this;

        me.getStore().add(record);
    }
});